/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.controller;

import com.persistencia.domain.Direccionescuela;
import com.service.DireccionEscuelaService;
import com.service.impl.DireccionEscuelaServiceImpl;
import com.persistencia.domain.Facultad;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
//import 

/**
 *
 * @author SHERLY
 */
@ManagedBean
@ViewScoped
public class DireccionEscuelaController implements Serializable{
    //public static final Logger log = Logger.getLogger(DireccionEscuelaController.class);
    //private static final Log log = LogFactory.getLog(MBVentaDirecta.class);
    private List<Direccionescuela> listaDirEscuela;
    private Direccionescuela dirEscuelaSeleccionado;
    private Direccionescuela dirEscuela;
    private DireccionEscuelaService dirEscuelaService;
    private String nUniversidad;
    private String nFctId;
    private boolean enabled;
    
    public DireccionEscuelaController() {
        listaDirEscuela = new ArrayList<Direccionescuela>();
        dirEscuelaSeleccionado = new Direccionescuela();
        dirEscuela = new Direccionescuela();
        dirEscuelaService = new DireccionEscuelaServiceImpl();
        nFctId = "0";
        enabled = true;
        listarDirEscuela();
    }
    
    private void listarDirEscuela(){
        try {
            System.out.println("listarDirEscuela");
            listaDirEscuela = dirEscuelaService.obtenerListaDireccionEscuela();      
        } catch (Exception ex) {
            Logger.getLogger(DocenteController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void consultarDirEscuela(){
        try{
            listarDirEscuela();
        } catch (Exception ex) {
            Logger.getLogger(DocenteController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void grabarDirEscuela(){
        FacesMessage msg = null;
        try{
            System.out.println("Entramos a crear DirEscuela");
            dirEscuela.setNFctId(new Facultad(Integer.parseInt(nFctId)));
            dirEscuela.setVEstado("1");
            dirEscuelaService.registrarDireccionEscuela(dirEscuela);
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Inserción","La Dir. Escuela  se creo satisfactoriamente.");
            dirEscuela = new Direccionescuela();
            nFctId = "0";
            listarDirEscuela();
        } catch (Exception ex) {
            Logger.getLogger(CicloController.class.getName()).log(Level.SEVERE, null, ex);
            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Inserción","No se registro la Dir. Escuela.");
        }
        finally{            
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    }
        
    public SelectItem[] getItemsDirEscuelaSelectOne(){
        try {
            System.out.println("getItemsDirEscuelaSelectOne DirEscuela");
            System.out.println("NFctId="+nFctId);
            if( nFctId.equals("0") ){
                setEnabled(true);
                System.out.println("es = 0,setEnabled="+isEnabled());                            
                return null;
            }else{
                setEnabled(false);
                System.out.println("es != 0,setEnabled="+isEnabled());            
                return getSelectItems(dirEscuelaService.obtenerListaDirEscuelaPorFacultad(new Facultad(Integer.parseInt(nFctId))));
            }            
        } catch (Exception ex) {
            System.out.println("error getItemsDirEscuelaSelectOne,ex="+ex.getMessage());
            return null;
        }        
    }
    
    private SelectItem[] getSelectItems(List<Direccionescuela> listaDirEscuela) {
        SelectItem[] items = new SelectItem[listaDirEscuela.size()];        
        int i = 0;
        for (Direccionescuela objDirEscuela : listaDirEscuela) {
            items[i++] = new SelectItem(objDirEscuela.getNDrcEscId(), objDirEscuela.getVNombre());
        }
        return items;
    }

    //<editor-fold defaultstate="collapsed" desc="GETTER and SETTER">  
    public Direccionescuela getDirEscuela() {
        return dirEscuela;
    }

    public void setDirEscuela(Direccionescuela dirEscuela) {
        this.dirEscuela = dirEscuela;
    }
    
    public Direccionescuela getDirEscuelaSeleccionado() {
        return dirEscuelaSeleccionado;
    }

    public void setDirEscuelaSeleccionado(Direccionescuela dirEscuelaSeleccionado) {
        this.dirEscuelaSeleccionado = dirEscuelaSeleccionado;
    }

    public DireccionEscuelaService getDirEscuelaService() {
        return dirEscuelaService;
    }

    public void setDirEscuelaService(DireccionEscuelaService dirEscuelaService) {
        this.dirEscuelaService = dirEscuelaService;
    }

    public List<Direccionescuela> getListaDirEscuela() {
        return listaDirEscuela;
    }

    public void setListaDirEscuela(List<Direccionescuela> listaDirEscuela) {
        this.listaDirEscuela = listaDirEscuela;
    }

    public String getNUniversidad() {
        return nUniversidad;
    }

    public void setNUniversidad(String nUniversidad) {
        this.nUniversidad = nUniversidad;
    }    
    
    public String getNFctId() {
        return nFctId;
    }

    public void setNFctId(String NFctId) {
        this.nFctId = NFctId;
    }
    
    public boolean isEnabled() {
        return enabled;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    
    //</editor-fold>

}